/**
* Copyright (c) By zengqh.
*
* This program is just for fun or demo, in the hope that it  
* will be useful, you can redistribute it and/or modify freely.
*
* Time: 2012/07/15
* File: Device.h
* Blog: http://www.cnblogs.com/zengqh/
**/

#ifndef Device_h__
#define Device_h__

#include "../Core/Core.h"
#include "../Core/Declare.h"

class Device
{
public:
	virtual ~Device() {}
	virtual bool run() = 0;

	virtual RenderSystem* getRenderSystem() const = 0;

	virtual SceneManager* getSceneManager() const = 0;

	virtual RenderWindow* getRenderWindow() const = 0;

	virtual InputSystem* getInputSystem() const = 0;

	virtual void onViewportUpdate(const Recti& view_port) = 0;

	virtual void swap() = 0;
};
#endif	/* Device_h__ */